/*
 * Camera
 *
 */

#ifndef _CAMERA_H_
#define _CAMERA_H_

typedef struct
{
        float *	look;
        float *	up;
	float * right;
        float *	position;
	float	RotatedX;
	float	RotatedY;
	float	RotatedZ;
} Camera_t;


void Camera_Init(Camera_t * camera); //inits the values (Position: (0|0|0) Target: (0|0|-1) )

void Camera_Destroy(Camera_t camera);

//	void Render ( void );	//executes some glRotates and a glTranslate command
				//Note: You should call glLoadIdentity before using Render

void Move(Camera_t * camera, float * Direction);

void RotateX(Camera_t * camera, float Angle);

void RotateY(Camera_t * camera, float Angle);

void RotateZ(Camera_t * camera, float Angle);

void MoveForward(Camera_t * camera, float Distance);

void MoveUpward(Camera_t * camera, float Distance);

void StrafeRight(Camera_t * camera, float Distance);

#endif/*_CAMERA_H_*/
